<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>  
<%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro" %>       
<c:set var="ctx" value="${pageContext.request.contextPath}"/> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<jsp:include page="../include.jsp"/>
<script type="text/javascript">
	
	$(function() {
		parent.$.messager.progress('close');
		$('#form').form({
			url : '${ctx}/module/authSetting',
			onSubmit : function() {
				validate = $(this).form('validate');				
				if(validate){
					getCheckedData();
					return true;
				}else{
					return false;
				}				
			},
			success : function(result) {
				parent.$.messager.progress('close');
				result = $.parseJSON(result);
				if(result.success) {
					parent.$.modalDialog.openner_dataGrid.datagrid('load');
					parent.$.modalDialog.handler.dialog('close');
					parent.$.messager.alert('系统提示', result.msg, 'info');
				} else {
					parent.$.messager.alert('错误', result.msg, 'error');
				}
			}
		});
		
		initTree();
	});
	
	
	// cascadeCheck:false 取消tree的自动级联勾选
	// 因为cascadeCheck:true是，勾选了子节点后，提交的数据，没有包含父节点
	// 需要重写 onCheck事件
	function initTree(){
	    $('#tt').tree({  
	       cascadeCheck:false,
	       checkbox: true,  
	       url: '${ctx}/module/loadMenu?roleId=${roleId}',  
	       lines: true,
	       onClick:function(node){
	    	    
	       },
	       onCheck:function(node){
	    	   //子节点选中时，父节点也选中
	    	   //一个节点一选中，他上面的所有父节点都会选中，因为上面的一选中，又会触发  onCheck事件
	    	   var node1=$('#tt').tree('getParent',node.target);       
	    	   $('#tt').tree('check', node1.target);  
	       },
	       formatter:function(node){
	    	   if(node.children.length !=0){
    			   return node.text +'<span style=\'color:blue\'>(' + node.children.length + ')</span>';
    		   }else{
    			   return node.text;
    		   }
		   	},
		   	onContextMenu: function(e,node){
				e.preventDefault();
				$(this).tree('select',node.target);
				$('#mm').menu('show',{
					left: e.pageX,
					top: e.pageY
				});
			}
	    });
	}
	
	function getCheckedData(){
		var nodes = $('#tt').tree('getChecked');
		var entities='';
	 	// 循环 tree 中现有的数据，并且逐行复制给Entities ，并且转换成json格式
	 	// 在后台反序列话成对象的对象集合。
	    for(var i= 0;i < nodes.length;i++)
	    {
	       entities = entities  + JSON.stringify(nodes[i]);	       
	    }
	    $("#entities").val(entities);
	}
</script>
</head>
<body>
	<div class="easyui-layout" data-options="fit:true,border:false">
		<div data-options="region:'center',border:false" title="" style="position:relative;overflow-y:scroll;">			
			<form id="form" method="post">
				<input id="entities" name="entities" type="hidden" value="">
				<input id="roleId" name="roleId" type="hidden" value="${roleId}">
				<div style="position:absolute; left:20%;">
					<ul id="tt"></ul>  
				</div>
	        </form>
		</div>
	</div>
</body>
</html>